7
תגובות

שינוי קידוד של מחרוזת

פתח ghgh ,
יש לי סטרינג ששאבתי מאתר אחר, וזה לא מקודד כUTF8 ולכן אני רואה קשקושים במקום אותיות.
יש איזה דרך לשנות לו את הקידוד כדי שיהיה אפשר לראות אותיות נורמליות ?

נ.ב. אם כבר מדברים על שאיבת נתונים מאתר אחר:
במקרה שאני רוצה לשאוב את ה<title>, האם עדיף בDOM או בביטוי רגולרי?
-מצד אחד DOM בנוי בשביל זה, אבל הוא עושה יותר בעיות(כמו במקרה שהתחביר בדף לא תקין) לעומת זאת ביטוי רגולרי - לא עושה בעיות (ולא צריך ביטוי מסובך כדי למצוא תגית title..)

וגם שהתגית נמצאת בתחילת המסמך, כך שהביטוי לא צריך לעבוד קשה (אני מסכים שאם רוצים לשלוף פסקה מסויימת מתוך הדף שאז עדיף להשתמש בDOM אבל זה לא המקרה כאן)

בקיצור מבולבל - יש המלצות?

והשאלה של הקידוד תקפה גם שמשתמשים בDOM וגם אם משתמשים בביטוי רגולרי.

תודה

7 תשובות

avatar ענה yonikal56 ב 18 ליוני 2013 #

תנסה בדפדפן שלך להכנס להגדרות->כלים->קדוד עם השפה בעברית אולי תנסה שלנות לקדוד:
windows-1255

avatar ענה ghgh ב 18 ליוני 2013 #

ל - yonikal56:
אני לוקח מידע מאתר אחר, ולכן זה לא משנה מה ההגדרה בדפדפן שלי.

avatar ענה yonikal56 ב 18 ליוני 2013 #

אז כנראה שאי אפשר.

avatar ענה intval ב 18 ליוני 2013 #

כן. רוב הסיכויים שהאתר האחר משתמש ב windows-1255
מה שאומר שאתה בסה"כ צריך להשתמש בפונקציה iconv להמרה.
לדוגמה בצורה הבאה:

iconv('cp1255', 'utf-8', $string)

avatar ענה ghgh ב 26 ליוני 2013 #

^תודה^ - זה עובד מצויין. ("רוב הסיכויים שהאתר האחר משתמש ב windows-1255" - לדוגמא גוגל..)
עכשיו רק עוד בעייה קטנה(שקשורה לעניין):
איך אפשר לזהות באיזה קידוד הסטרינג שבמשתנה?

avatar ענה intval ב 26 ליוני 2013 #

כמעט ואי אפשר. אבל הם בדרך כלל קבועים. תבדוק פעם אחת לבד ותשתמש.
גוגל משתמשים ב utf-8 דווקא

avatar ענה ghgh ב 27 ליוני 2013 #

אתה מוזמן לבדוק בעצמך:
תבנה קוד פשוט שמחלץ את התגית title מתוך דף חיפוש בגוגל ותראה שבמקום עברית, יהיה סימני שאלה בתוך מעויין שחור. אלא אם תשתמש בקוד שהבאת לי לעיל (iconv) ואז זה יציג עברית בצורה טובה.

אני לא יכול עכשיו לכתוב את הקוד..אבל זה נורא פשוט(2 שורות) תשתמש בfile get contents לקבלת הדף ואז תבצע ביטוי רגולרי.

תהנה ;) ותראה שצדקתי